<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Extras  Reference</title>
    <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="css/highlight.css" />
    <meta charset="utf-8">
    <script src="js/jquery.min.js" defer></script>
    <script src="js/jazzy.js" defer></script>
    
    <script src="js/lunr.min.js" defer></script>
    <script src="js/typeahead.jquery.js" defer></script>
    <script src="js/jazzy.search.js" defer></script>
  </head>
  <body>

    <a name="//apple_ref/swift/Section/Extras" class="dashAnchor"></a>

    <a title="Extras  Reference"></a>

    <header class="header">
      <p class="header-col header-col--primary">
        <a class="header-link" href="index.html">
          RouteComposer 2.9.0 Docs
        </a>
         (100% documented)
      </p>
    
      <div class="header-col--secondary">
        <form role="search" action="search.json">
          <input type="text" placeholder="Search documentation" data-typeahead>
        </form>
      </div>
    
    
    </header>

    <p class="breadcrumbs">
      <a class="breadcrumb" href="index.html">RouteComposer Reference</a>
      <img class="carat" src="img/carat.png" alt=""/>
      Extras  Reference
    </p>

    <div class="content-wrapper">
      <nav class="navigation">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Core%20Entities.html">Core Entities</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/Router.html">Router</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/RoutingError.html">RoutingError</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/RoutingError/InitialControllerErrorState.html">– InitialControllerErrorState</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/RoutingError/Context.html">– Context</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DestinationStep.html">DestinationStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/Finder.html">Finder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/Factory.html">Factory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContainerFactory.html">ContainerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Core%20Entities.html#/s:13RouteComposer6ActionP">Action</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContainerAction.html">ContainerAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/RoutingResult.html">RoutingResult</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/RouteComposerDefaults.html">RouteComposerDefaults</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Tasks.html">Tasks</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/RoutingInterceptor.html">RoutingInterceptor</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContextTask.html">ContextTask</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/PostRoutingTask.html">PostRoutingTask</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Assemblies.html">Assemblies</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/StepAssembly.html">StepAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/SwitchAssembly.html">SwitchAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/ChainAssembly.html">ChainAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/CompleteFactoryAssembly.html">CompleteFactoryAssembly</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Additional%20Assemblies.html">Additional Assemblies</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/SingleStep.html">SingleStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/SingleContainerStep.html">SingleContainerStep</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Factories.html">Factories</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ClassFactory.html">ClassFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/StoryboardFactory.html">StoryboardFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/FinderFactory.html">FinderFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NavigationControllerFactory.html">NavigationControllerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/TabBarControllerFactory.html">TabBarControllerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/SplitControllerFactory.html">SplitControllerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NilFactory.html">NilFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/UIHostingControllerFactory.html">UIHostingControllerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/UIHostingControllerWithContextFactory.html">UIHostingControllerWithContextFactory</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Finders.html">Finders</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/StackIteratingFinder.html">StackIteratingFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ClassFinder.html">ClassFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InstanceFinder.html">InstanceFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NilFinder.html">NilFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/UIHostingControllerWithContextFinder.html">UIHostingControllerWithContextFinder</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Steps.html">Steps</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/GeneralStep.html">GeneralStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/NavigationControllerStep.html">NavigationControllerStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/TabBarControllerStep.html">TabBarControllerStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/SplitControllerStep.html">SplitControllerStep</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="UIViewController%27s%20protocols.html">UIViewController&#39;s protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/RoutingInterceptable.html">RoutingInterceptable</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContainerViewController.html">ContainerViewController</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="General%20Actions.html">General Actions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/GeneralAction.html">GeneralAction</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Logging.html">Logging</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/Logger.html">Logger</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/LogMessage.html">LogMessage</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Extras.html">Extras</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/Destination.html">Destination</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extras.html#/s:13RouteComposer14AnyDestinationa">AnyDestination</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InlineFactory.html">InlineFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InlineStackIteratingFinder.html">InlineStackIteratingFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InlineInterceptor.html">InlineInterceptor</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InlineContextTask.html">InlineContextTask</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/InlinePostTask.html">InlinePostTask</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NavigationDelayingInterceptor.html">NavigationDelayingInterceptor</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NavigationDelayingInterceptor/Strategy.html">– Strategy</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/SingleNavigationRouter.html">SingleNavigationRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/GlobalInterceptorRouter.html">GlobalInterceptorRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/PresentingFinder.html">PresentingFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/PresentingFinder/StartingPoint.html">– StartingPoint</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ContextSettingTask.html">ContextSettingTask</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContextAccepting.html">ContextAccepting</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContextAcceptingView.html">ContextAcceptingView</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContextInstantiatable.html">ContextInstantiatable</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ClassWithContextFinder.html">ClassWithContextFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContextChecking.html">ContextChecking</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DismissalMethodProvidingContextTask.html">DismissalMethodProvidingContextTask</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/Dismissible.html">Dismissible</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/DismissibleWithRuntimeStorage.html">DismissibleWithRuntimeStorage</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DetailsNavigationFinder.html">DetailsNavigationFinder</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/CATransaction.html">CATransaction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/DispatchQueue.html">DispatchQueue</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Guides.html">Other Guides</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="code_of_conduct.html">CODE_OF_CONDUCT</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="contributing.html">CONTRIBUTING</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="examples.html">EXAMPLES</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="readme.html">README</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Classes.html">Other Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/ActionToStepIntegrator.html">ActionToStepIntegrator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/CompleteFactoryChainAssembly.html">CompleteFactoryChainAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/GenericStepAssembly.html">GenericStepAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Other%20Classes.html#/s:13RouteComposer27IntermediateDestinationStepC">IntermediateDestinationStep</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Classes/SingleNavigationLock.html">SingleNavigationLock</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Enums.html">Other Enumerations</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/NavigationControllerActions.html">NavigationControllerActions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/NavigationControllerActions/PushAction.html">– PushAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/NavigationControllerActions/PushAsRootAction.html">– PushAsRootAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/NavigationControllerActions/PushReplacingLastAction.html">– PushReplacingLastAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/SplitViewControllerActions.html">SplitViewControllerActions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/SplitViewControllerActions/SetAsMasterAction.html">– SetAsMasterAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/SplitViewControllerActions/PushToDetailsAction.html">– PushToDetailsAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/SplitViewControllerActions/PushOnToDetailsAction.html">– PushOnToDetailsAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/TabBarControllerActions.html">TabBarControllerActions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/TabBarControllerActions/AddTabAction.html">– AddTabAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/ViewControllerActions.html">ViewControllerActions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/ViewControllerActions/PresentModallyAction.html">– PresentModallyAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/ViewControllerActions/ReplaceRootAction.html">– ReplaceRootAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Enums/ViewControllerActions/NilAction.html">– NilAction</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Extensions.html">Other Extensions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/Array.html">Array</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UIHostingController.html">UIHostingController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UINavigationController.html">UINavigationController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UISplitViewController.html">UISplitViewController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UITabBarController.html">UITabBarController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UIViewController.html">UIViewController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Extensions/UIWindow.html">UIWindow</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Protocols.html">Other Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/AbstractAction.html">AbstractAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/AbstractFactory.html">AbstractFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ConcreteContainerAdapter.html">ConcreteContainerAdapter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContainerAdapter.html">ContainerAdapter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/ContainerAdapterLocator.html">ContainerAdapterLocator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/CustomContainerViewController.html">CustomContainerViewController</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/InterceptableRouter.html">InterceptableRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Other%20Protocols.html#/s:13RouteComposer9NilEntityP">NilEntity</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/SimpleContainerFactory.html">SimpleContainerFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/StackIterator.html">StackIterator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/StackPresentationHandler.html">StackPresentationHandler</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Protocols/WindowProvider.html">WindowProvider</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a class="nav-group-name-link" href="Other%20Structs.html">Other Structures</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ActionConnectingAssembly.html">ActionConnectingAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/CATransactionWrappedAction.html">CATransactionWrappedAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/CATransactionWrappedContainerAction.html">CATransactionWrappedContainerAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ChildCoordinator.html">ChildCoordinator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/CompleteFactory.html">CompleteFactory</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/ContainerStepChainAssembly.html">ContainerStepChainAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/CustomWindowProvider.html">CustomWindowProvider</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultContainerAdapterLocator.html">DefaultContainerAdapterLocator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultLogger.html">DefaultLogger</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultLogger/LogLevel.html">– LogLevel</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultRouter.html">DefaultRouter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultStackIterator.html">DefaultStackIterator</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultStackIterator/StartingPoint.html">– StartingPoint</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DefaultStackPresentationHandler.html">DefaultStackPresentationHandler</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DispatchQueueWrappedAction.html">DispatchQueueWrappedAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/DispatchQueueWrappedContainerAction.html">DispatchQueueWrappedContainerAction</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/KeyWindowProvider.html">KeyWindowProvider</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/LastStepInChainAssembly.html">LastStepInChainAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/NavigationControllerAdapter.html">NavigationControllerAdapter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/SearchOptions.html">SearchOptions</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/SplitControllerAdapter.html">SplitControllerAdapter</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/StepChainAssembly.html">StepChainAssembly</a>
              </li>
              <li class="nav-group-task">
                <a class="nav-group-task-link" href="Structs/TabBarControllerAdapter.html">TabBarControllerAdapter</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">

        <section class="section">
          <div class="section-content top-matter">
            <h1>Extras</h1>
            
          </div>
        </section>

        <section class="section">
          <div class="section-content">
            <div class="task-group">
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer11DestinationV"></a>
                    <a name="//apple_ref/swift/Struct/Destination" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer11DestinationV">Destination</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>Destination</code> instance represents both final screen configuration and the data to provide. It is useful when
there is a need to wrap both values into a single DTO value.</p>

                        <a href="Structs/Destination.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">Destination</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer14AnyDestinationa"></a>
                    <a name="//apple_ref/swift/Alias/AnyDestination" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer14AnyDestinationa">AnyDestination</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>AnyDestination</code> represents a generic <code><a href="Structs/Destination.html">Destination</a></code> that contains the screen configuration  for any type
of <code>UIViewController</code> and the context of any type.</p>

                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">AnyDestination</span> <span class="o">=</span> <span class="kt"><a href="Structs/Destination.html">Destination</a></span><span class="o">&lt;</span><span class="kt">UIViewController</span><span class="p">,</span> <span class="kt">Any</span><span class="p">?</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer13InlineFactoryV"></a>
                    <a name="//apple_ref/swift/Struct/InlineFactory" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer13InlineFactoryV">InlineFactory</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>InlineFactory</code>. Might be useful for the configuration testing.</p>

                        <a href="Structs/InlineFactory.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">InlineFactory</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Factory.html">Factory</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer26InlineStackIteratingFinderV"></a>
                    <a name="//apple_ref/swift/Struct/InlineStackIteratingFinder" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer26InlineStackIteratingFinderV">InlineStackIteratingFinder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>InlineStackIteratingFinder</code>. Might be useful for the configuration testing.</p>

                        <a href="Structs/InlineStackIteratingFinder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">InlineStackIteratingFinder</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/StackIteratingFinder.html">StackIteratingFinder</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer17InlineInterceptorV"></a>
                    <a name="//apple_ref/swift/Struct/InlineInterceptor" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer17InlineInterceptorV">InlineInterceptor</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>InlineInterceptor</code></p>

<p><strong>NB:</strong> It may be used for the purpose of configuration testing, but then replaced with a strongly typed
<code><a href="Protocols/RoutingInterceptor.html">RoutingInterceptor</a></code> instance.</p>

                        <a href="Structs/InlineInterceptor.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">InlineInterceptor</span><span class="o">&lt;</span><span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/RoutingInterceptor.html">RoutingInterceptor</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer17InlineContextTaskV"></a>
                    <a name="//apple_ref/swift/Struct/InlineContextTask" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer17InlineContextTaskV">InlineContextTask</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>InlineContextTask</code></p>

<p><strong>NB:</strong> It may be used for the purpose of configuration testing, but then replaced with a strongly typed
<code><a href="Protocols/ContextTask.html">ContextTask</a></code> instance.</p>

                        <a href="Structs/InlineContextTask.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">InlineContextTask</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContextTask.html">ContextTask</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer14InlinePostTaskV"></a>
                    <a name="//apple_ref/swift/Struct/InlinePostTask" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer14InlinePostTaskV">InlinePostTask</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>InlinePostTask</code> is the inline context task.</p>

<p><strong>NB:</strong> It may be used for the purpose of configuration testing, but then replaced with a strongly typed
<code><a href="Protocols/PostRoutingTask.html">PostRoutingTask</a></code> instance.</p>

                        <a href="Structs/InlinePostTask.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">InlinePostTask</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/PostRoutingTask.html">PostRoutingTask</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer29NavigationDelayingInterceptorV"></a>
                    <a name="//apple_ref/swift/Struct/NavigationDelayingInterceptor" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer29NavigationDelayingInterceptorV">NavigationDelayingInterceptor</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>NavigationDelayingInterceptor</code> delays the router from starting the navigation, while any view controllers in the
stack are being presented or dismissed. In case your app has some other navigation instruments rather than
<code>RouteComposer</code> or you have a situation when a few routers work simultaneously, add it to your <strong>router</strong> to avoid
the router not being able to navigate to the destination because a view controller in the stack is
being presented or dismissed.</p>

<p><em>NB: <code>UIKit</code> does not allow simultaneous changes in <code>UIViewController</code> stack. The <code>.wait</code> strategy does not
guarantee 100% protection from all possible situations. The code must be written in a way that avoids such
situations. The <code>.wait</code> strategy can be used only as a temporary solution.</em></p>

                        <a href="Structs/NavigationDelayingInterceptor.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">NavigationDelayingInterceptor</span><span class="o">&lt;</span><span class="kt">Context</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/RoutingInterceptor.html">RoutingInterceptor</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer22SingleNavigationRouterV"></a>
                    <a name="//apple_ref/swift/Struct/SingleNavigationRouter" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer22SingleNavigationRouterV">SingleNavigationRouter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code><a href="Protocols/Router.html">Router</a></code> proxy guarantees that not more than one navigation will happen simultaneously.</p>

<p>It is useful to avoid situations when the application can not control the amount of navigations
(for example, navigations triggered by push notifications)</p>

                        <a href="Structs/SingleNavigationRouter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">SingleNavigationRouter</span><span class="o">&lt;</span><span class="kt">R</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Router.html">Router</a></span> <span class="k">where</span> <span class="kt">R</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Router.html">Router</a></span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">SingleNavigationRouter</span><span class="p">:</span> <span class="kt"><a href="Protocols/InterceptableRouter.html">InterceptableRouter</a></span> <span class="k">where</span> <span class="kt">R</span><span class="p">:</span> <span class="kt"><a href="Protocols/InterceptableRouter.html">InterceptableRouter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer23GlobalInterceptorRouterV"></a>
                    <a name="//apple_ref/swift/Struct/GlobalInterceptorRouter" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer23GlobalInterceptorRouterV">GlobalInterceptorRouter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The <code><a href="Structs/DefaultRouter.html">DefaultRouter</a></code> searches for the view controller as a starting point before it starts to run interceptors.
Sometimes if interceptor can change the entire stack of view controllers it is handy to run a global interceptor
any starting point is found. <code>GlobalInterceptorRouter</code> proxy allows to add such a global interceptor that will be
executed before any work that <code><a href="Structs/DefaultRouter.html">DefaultRouter</a></code> will do.</p>

                        <a href="Structs/GlobalInterceptorRouter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">GlobalInterceptorRouter</span><span class="o">&lt;</span><span class="kt">R</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Router.html">Router</a></span> <span class="k">where</span> <span class="kt">R</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Router.html">Router</a></span></code></pre>
<pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">GlobalInterceptorRouter</span><span class="p">:</span> <span class="kt"><a href="Protocols/InterceptableRouter.html">InterceptableRouter</a></span> <span class="k">where</span> <span class="kt">R</span><span class="p">:</span> <span class="kt"><a href="Protocols/InterceptableRouter.html">InterceptableRouter</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer16PresentingFinderV"></a>
                    <a name="//apple_ref/swift/Struct/PresentingFinder" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer16PresentingFinderV">PresentingFinder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>PresentingFinder</code> returns the presenting <code>UIViewController</code> of the topmost one in current stack.</p>

                        <a href="Structs/PresentingFinder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">PresentingFinder</span><span class="o">&lt;</span><span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Finder.html">Finder</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer18ContextSettingTaskV"></a>
                    <a name="//apple_ref/swift/Struct/ContextSettingTask" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer18ContextSettingTaskV">ContextSettingTask</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code><a href="Protocols/ContextTask.html">ContextTask</a></code> that simplifies setting of the context to the <code>UIViewController</code> that implements <code><a href="Protocols/ContextAccepting.html">ContextAccepting</a></code> protocol.</p>

                        <a href="Structs/ContextSettingTask.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">ContextSettingTask</span><span class="o">&lt;</span><span class="kt">VC</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContextTask.html">ContextTask</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContextAccepting.html">ContextAccepting</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer16ContextAcceptingP"></a>
                    <a name="//apple_ref/swift/Protocol/ContextAccepting" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer16ContextAcceptingP">ContextAccepting</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The protocol for a <code>UIViewController</code> to make it compatible with <code><a href="Structs/ContextSettingTask.html">ContextSettingTask</a></code>.</p>

                        <a href="Protocols/ContextAccepting.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ContextAccepting</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer20ContextAcceptingViewP"></a>
                    <a name="//apple_ref/swift/Protocol/ContextAcceptingView" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer20ContextAcceptingViewP">ContextAcceptingView</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>The protocol for a <code>View</code> to make it compatible with <code><a href="Structs/ContextSettingTask.html">ContextSettingTask</a></code>.</p>

<p><em>Due to some current <code>swift</code> limitations protocol <code><a href="Protocols/ContextAccepting.html">ContextAccepting</a></code> can not be used directly.</em></p>

                        <a href="Protocols/ContextAcceptingView.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">13.0</span><span class="p">,</span> <span class="n">macOS</span> <span class="mf">10.15</span><span class="p">,</span> <span class="n">tvOS</span> <span class="mf">13.0</span><span class="p">,</span> <span class="n">watchOS</span> <span class="mf">6.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ContextAcceptingView</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer21ContextInstantiatableP"></a>
                    <a name="//apple_ref/swift/Protocol/ContextInstantiatable" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer21ContextInstantiatableP">ContextInstantiatable</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>View</code> instance should conform to this protocol to be used with <code><a href="Structs/UIHostingControllerWithContextFactory.html">UIHostingControllerWithContextFactory</a></code></p>

                        <a href="Protocols/ContextInstantiatable.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@available</span><span class="p">(</span><span class="n">iOS</span> <span class="mf">13.0</span><span class="p">,</span> <span class="n">macOS</span> <span class="mf">10.15</span><span class="p">,</span> <span class="n">tvOS</span> <span class="mf">13.0</span><span class="p">,</span> <span class="n">watchOS</span> <span class="mf">6.0</span><span class="p">,</span> <span class="o">*</span><span class="p">)</span>
<span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ContextInstantiatable</span> <span class="p">:</span> <span class="kt">View</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer22ClassWithContextFinderV"></a>
                    <a name="//apple_ref/swift/Struct/ClassWithContextFinder" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer22ClassWithContextFinderV">ClassWithContextFinder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>A default implementation of the view controllers finder, that searches for a view controller by its name
and its <code>Context</code> instance.</p>

<p>The view controller should conform to the <code><a href="Protocols/ContextChecking.html">ContextChecking</a></code> to be used with this finder.</p>

                        <a href="Structs/ClassWithContextFinder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">ClassWithContextFinder</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/StackIteratingFinder.html">StackIteratingFinder</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt">UIViewController</span><span class="p">,</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContextChecking.html">ContextChecking</a></span><span class="p">,</span> <span class="kt">C</span> <span class="o">==</span> <span class="kt">VC</span><span class="o">.</span><span class="kt">Context</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer15ContextCheckingP"></a>
                    <a name="//apple_ref/swift/Protocol/ContextChecking" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer15ContextCheckingP">ContextChecking</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>UIViewController</code> instance should conform to this protocol to be used with <code><a href="Structs/ClassWithContextFinder.html">ClassWithContextFinder</a></code></p>

                        <a href="Protocols/ContextChecking.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">ContextChecking</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer35DismissalMethodProvidingContextTaskV"></a>
                    <a name="//apple_ref/swift/Struct/DismissalMethodProvidingContextTask" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer35DismissalMethodProvidingContextTaskV">DismissalMethodProvidingContextTask</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>DismissalMethodProvidingContextTask</code> allows to provide the way to dismiss the <code>UIViewController</code> using a preset configuration.
The <code>UIViewController</code> should conform to <code><a href="Protocols/Dismissible.html">Dismissible</a></code> protocol and call <code><a href="Protocols/Dismissible.html#/s:13RouteComposer11DismissiblePAAE21dismissViewController4with8animated10completiony22DismissalTargetContextQz_SbyAA13RoutingResultOcSgtF">Dismissible.dismissViewController(...)</a></code> method
when it needs to be dismissed to trigger the dismissal process implemented in <code><a href="Structs/DismissalMethodProvidingContextTask.html#/s:13RouteComposer35DismissalMethodProvidingContextTaskV14dismissalBlockACyxq_Gy0c6TargetF0Qz_SbyAA13RoutingResultOcSgtc_tcfc">DismissalMethodProvidingContextTask.init(...)</a></code>
constructor.</p>

                        <a href="Structs/DismissalMethodProvidingContextTask.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">DismissalMethodProvidingContextTask</span><span class="o">&lt;</span><span class="kt">VC</span><span class="p">,</span> <span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/ContextTask.html">ContextTask</a></span> <span class="k">where</span> <span class="kt">VC</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Dismissible.html">Dismissible</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer11DismissibleP"></a>
                    <a name="//apple_ref/swift/Protocol/Dismissible" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer11DismissibleP">Dismissible</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>UIViewController</code> should conform to <code>Dismissible</code> protocol to be used with <code><a href="Structs/DismissalMethodProvidingContextTask.html">DismissalMethodProvidingContextTask</a></code>.</p>

                        <a href="Protocols/Dismissible.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">Dismissible</span> <span class="p">:</span> <span class="kt">UIViewController</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Helper%20methods%20where%20the%20DismissalTargetContext%20is%20Void"></a>
                <a name="//apple_ref/swift/Section/Helper methods where the DismissalTargetContext is Void" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/Helper%20methods%20where%20the%20DismissalTargetContext%20is%20Void"></a>
                  <h3 class="section-name"><span>Helper methods where the DismissalTargetContext is Void</span>
</h3>
                </div>
              </div>
              <ul class="item-container">
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer29DismissibleWithRuntimeStorageP"></a>
                    <a name="//apple_ref/swift/Protocol/DismissibleWithRuntimeStorage" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer29DismissibleWithRuntimeStorageP">DismissibleWithRuntimeStorage</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code>DismissibleWithRuntimeStorage</code> simplifies <code><a href="Protocols/Dismissible.html">Dismissible</a></code> protocol conformance implementing required
<code>dismissalBlock</code> using Objective C runtime.</p>

                        <a href="Protocols/DismissibleWithRuntimeStorage.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">protocol</span> <span class="kt">DismissibleWithRuntimeStorage</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Dismissible.html">Dismissible</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:13RouteComposer23DetailsNavigationFinderV"></a>
                    <a name="//apple_ref/swift/Struct/DetailsNavigationFinder" class="dashAnchor"></a>
                    <a class="token" href="#/s:13RouteComposer23DetailsNavigationFinderV">DetailsNavigationFinder</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p><code><a href="Protocols/Finder.html">Finder</a></code> that helps to find the <code>UINavigationController</code> inside of the details of the <code>UISplitController</code></p>

                        <a href="Structs/DetailsNavigationFinder.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">struct</span> <span class="kt">DetailsNavigationFinder</span><span class="o">&lt;</span><span class="kt">C</span><span class="o">&gt;</span> <span class="p">:</span> <span class="kt"><a href="Protocols/Finder.html">Finder</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)CATransaction"></a>
                    <a name="//apple_ref/swift/Extension/CATransaction" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)CATransaction">CATransaction</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Extension that wraps an action into <code>CATransaction</code>.</p>

<p>When <code><a href="Structs/DefaultRouter.html">DefaultRouter</a></code> builds a complicated chain of animated modifications in the <code>UIViewController</code>s stack
it might be necessary to wrap some actions into single <code>CATransaction</code>.</p>

<p><em>Example: When <code>UINavigationController</code> does pop, then push of the <code>UIViewController</code> and then tries to
do some to it or find it with a <code><a href="Protocols/Finder.html">Finder</a></code>. Then <code><a href="Structs/DefaultRouter.html">DefaultRouter</a></code> has to wait till the end of the animation.</em></p>

                        <a href="Extensions/CATransaction.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">extension</span> <span class="kt">CATransaction</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)OS_dispatch_queue"></a>
                    <a name="//apple_ref/swift/Extension/DispatchQueue" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)OS_dispatch_queue">DispatchQueue</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Extension that wraps actions into <code>DispatchQueue</code> and delays it for the provided time interval.</p>

<p>Can be used to test action implementation or the configuration issues.</p>

                        <a href="Extensions/DispatchQueue.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">extension</span> <span class="kt">DispatchQueue</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </div>
        </section>

      </article>
    </div>
    <section class="footer">
      <p>&copy; 2022 <a class="link" href="https://github.com/ekazaev" target="_blank" rel="external noopener">Evgeny Kazaev</a>. All rights reserved. (Last updated: 2022-10-21)</p>
      <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.3</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
    </section>
  </body>
</html>
